import { Module } from '@nestjs/common'
import { TypeOrmModule } from '@nestjs/typeorm'
import { ConfigService, ConfigModule } from '@nestjs/config'
import { UserModule } from './user/user.module'

@Module({
    imports: [
        UserModule,
        ConfigModule.forRoot({
            //全局使用，无需在其他模块中导入它
            isGlobal: true,
            // 自定义 env 文件路径，默认情况下，程序在应用程序的根目录中查找.env文件
            envFilePath: ['.env']
        }),
        TypeOrmModule.forRootAsync({
            inject: [ConfigService],
            useFactory: async (configService: ConfigService) => ({
                type: 'mysql',
                host: configService.get('DB_HOST'),
                port: configService.get('DB_PORT'),
                username: configService.get('DB_USER'),
                password: configService.get('DB_PASSWORD'),
                database: configService.get('DB_DATABASE'),
                autoLoadEntities: true,
                // 默认：false，如果为true，自动载入的模型将同步，禁止生产环境使用，否则数据将会丢失
                synchronize: false
            })
        })
        // TypeOrmModule.forRoot({
        //     type: 'mysql',
        //     host: 'localhost',
        //     port: 3306,
        //     username: 'root',
        //     password: 'aaa***1111',
        //     database: 'xhpx',
        //     entities: [User],
        //     retryAttempts: 3,
        //     retryDelay: 2000,
        //     // 自动载入实体
        //     autoLoadEntities: true
        // })
    ]
})
export class AppModule {}
